const path = require('node:path')

// 1.basename 返回给定路径的最后一部分
console.log(path.basename(__dirname))
// windows系统默认是F:\aaa\bbb\ccc,但是他兼容正斜杠的写法
console.log(path.basename('/foo/bar/baz/ccc.html'))
console.log(path.basename('\\foo\\bar\\baz\\ccc.html'))
//posix 处理不了Windows的路径
console.log(path.posix.basename('\\foo\\bar\\baz\\ccc.html'))
//比如在macOS上处理Windows的路径
console.log(path.win32.basename('\\foo\\bar\\baz\\ccc.html'))

// 2.dirname 返回给定路径的目录名
console.log(path.dirname('F:\\foo\\bar\\baz\\ccc.html'))

// 3.extname 返回给定路径的扩展名
console.log(path.extname('F:\\foo\\bar\\baz\\ccc.html'))
// 如果没有扩展名，返回空字符串
console.log(path.extname('F:\\foo\\bar\\baz\\ccc'))
// 如果有多个.,返回最后一个
console.log(path.extname('F:\\foo\\bar\\baz\\ccc.html.jpg.png'))

// 4.join 拼接路径
console.log(path.join('/a','/b','/c','../'))

// 5.resolve 解析路径，返回一个绝对路径
console.log(path.resolve('./index.js'))
//多个绝对路径，返回最后一个
console.log(path.resolve('/a','/b','/c'))
console.log(path.resolve(__dirname,'./b'))

// 6.parse 把路径解析成对象
console.log(path.parse('/a/b/c/file.txt'))

// 7.format 把对象解析成路径
console.log(path.format({
        root: '/',
        dir: '/a/b/c',
        base: 'file.txt',
        ext: '.txt',
        name: 'file'
    }
))

// 8.sep 根据操作系统返回路径的分隔符
console.log(path.sep)
